<?php
/**
 * @category 	MemberController.php
 * @author 		Sung Hoon, Cho (akdddnet@gmail.com)
 * @since		2011. 5. 2.
 * @license		BSD License
 * @version		0.1
 */

global $CFG;
require_once $CFG->FW_DIR."/mvc/Controller.php";
require_once $CFG->CLASSES_DIR."/member/MemberEB.php";
require_once $CFG->WEBINF_DIR."/utility/MemberUtil.php";

class MemberController extends Controller {
	 
	function __construct() {
		parent::__construct(get_class());	// 꼭 부모의 construct를 실행 해줘야됩니다.
	} 
	
	
	function view($seq) {
		/*
		if(is_numeric($seq)) {
			$dto = new DTO();
			$eb = new UserEB();
			$eb->m_seq = $seq;
			$dto->eb = $eb;
			
			$result = $this->dao->view($dto)->obj;
			
			if(!Common::isNullOrEmpty($result)) {
				
				$result->auth = getAuth($result->m_auth);
				$result->sendemail = getSendEmail($result->m_sendemail);
				$result->sign = getSign($result->m_sign);
				
				$result->modidate = getModiDate($result->m_modidate);
				
				
				$this->tpl->assign(array(
					"result"=>$result					
					
				));	
			} else {
				Javascript::getAlert("존재하지 않는 회원 입니다.");	
			}
		} else {
			Javascript::getAlert("잘못된 값이 전달되었습니다.");
		}*/
	}
	
	function add() {
		$this->tpl->assign(array(
				"script"=>Javascript::getjQueryValidateFile()
		));
	}
	
	
	/**
	 * 로그인 폼
	 *
	 */
	function login() {
		//$this->tpl->define(array('main'=>"/member/login.html"));
		
		if(!Common::isAjax()) {
			// ajax로 호출이 된게 아니라면 별도의 폼으로 이동하게 해야됨.
			$this->tpl->define(array('main'=>"/member/login_webpagecall.html"));
		}
	}
	
	
	/**
	 * 로그인 처리
	 *
	 */
	function doLogin() {
	
		$param = new Parameter(false);
	
		$mid = $param->getParameter("username");
		$mpwd = $param->getParameter("userpassword");
	
		// validate 검사
		$validate = new Validate();
		$validate->add(array("required", "username"), $mid, "사용자 아이디");
		$validate->add("required", $mpwd, "사용자 비밀번호");
	
		if($validate->validate()) {
			
			$meb = new MemberEB();
			$meb->m_id = $mid;
			$meb->m_password = $mpwd;
	
			$dto = new DTO();
			$dto->eb = $meb;
	
			if($member = $this->dao->doLogin($dto)) {
				if($member->m_auth) {
					$_SESSION["owner"] = $member;
						
					//$refer = $_SERVER['HTTP_REFERER'];
					$refer = $_SESSION["refer"];
					
					global $CFG;
					$moveurl = (Common::isNullOrEmpty($refer)) ? $CFG->PATH->WWW : $refer;
											
					if(Common::isAjax()) {
						Javascript::printJSON(array("code"=>Javascript::getSuccessCode(), "msg"=>"로그인 되었습니다.", "moveurl"=>$moveurl));
					} else {
						Javascript::move($refer, true);
					}
				} else {
					Javascript::getAlertWithAjax("인증되지 않는 사용자 입니다.");
				}
			} else {
				Javascript::getAlertWithAjax("아이디 또는 비밀번호 오류입니다.");
			}
		} else {
			Javascript::getAlertWithAjax($validate->getErrorMessage());
		}
	}
	
	
	/**
	 * 로그아웃
	 *
	 */
	function doLogout() {
		unset($_SESSION["owner"]);
	
		global $CFG;
		Javascript::getAlertMove("로그아웃 되었습니다.", $CFG->PATH->WWW."/member/login", true);
	}
	
	
	function getMID($uid) {
		if(Common::isAjax()) {
			$validate = new Validate();
			$validate->add(array("required", "userid"), $uid, "사용자 아이디");
			if($validate->validate()) {
				$dto = new DTO();
				$meb = new MemberEB();
				$meb->m_id = $uid;
				$dto->eb = $meb;
	
				$result = $this->dao->getMID($dto)->obj;
				
				
				if($result > 0) {
					Javascript::printJSON(array("code"=>Javascript::getFailureCode(), "msg"=>$uid." 아디는 사용 하실수 없습니다."));
				} else {
					Javascript::printJSON(array("code"=>Javascript::getSuccessCode(), "msg"=>$uid." 사용 가능한 아이디 입니다."));
				}
			} else {
				Javascript::printJSON(array("code"=>Javascript::getFailureCode(), "msg"=>$validate->getErrorMessage()));
			}
		} else {
			Javascript::getAlert("ajax 통신 전용입니다.");
		}
	}
}

